package 笔试.科大讯飞;

//低位第2个0变为1
// 10（1010）  14（1110）
public class Demo1 {
    public int changeNumber (int num) {
        // write code here
        int count = 0;
        int res = 0;
        //记录是否遇到第二个0
        boolean flag = false;
        for(int i=0;i<32;i++){
            if(!flag || num!=0){
                //从低位依次取当前数位
                int digit = num%2;
                if(digit==0){
                    if(count<1){
                        count++;
                    }else if(count ==1){
                        //加上1左移i位
                        res += 1<<i;
                        flag = true;
                        count++;
                    }
                }else{
                    res += 1<<i;
                }
                //将num右移一位
                num = num>>1;
            }
        }
        return res;
    }
}
